﻿//  Copyright (c) Microsoft Corporation. All rights reserved.

using System;
using System.Security.Permissions;
using System.ServiceModel;
using System.ServiceModel.Channels;

namespace Microsoft.Samples.WS2007FederationHttpBinding
{
	class Client
	{
        static void Main(string[] args)
        {
            ChannelFactory<ICalculator> clientFactory = new ChannelFactory<ICalculator>("ServiceFed");
            ICalculator client = clientFactory.CreateChannel();

            // Call the Add service operation.
            double value1 = 100.00D;
            double value2 = 15.99D;
            double result = client.Add(value1, value2);
            Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

            // Call the Subtract service operation.
            value1 = 145.00D;
            value2 = 76.54D;
            result = client.Subtract(value1, value2);
            Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);

            // Call the Multiply service operation.
            value1 = 9.00D;
            value2 = 81.25D;
            result = client.Multiply(value1, value2);
            Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

            // Call the Divide service operation.
            value1 = 22.00D;
            value2 = 7.00D;
            result = client.Divide(value1, value2);
            Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);

            //Closing the client gracefully closes the connection and cleans up resources.
            ((IChannel) client).Close();

            Console.WriteLine();
            Console.WriteLine("Press <ENTER> to terminate client.");
            Console.ReadLine();
        }
	}
}

